
#ifndef __LENGTHUNIT_H__
#define __LENGTHUNIT_H__

#include <Unit.h>

#define MILE LengthUnit::getMile()
#define YARD LengthUnit::getYard()
#define FEET LengthUnit::getFeet()
#define BASE_LENGTH_UNIT FEET

#define FEET_TO_BASEUNIT 1
#define YARD_TO_BASEUNIT 3
#define MILE_TO_BASEUNIT 5280

class LengthUnit : public Unit
{
public:
    static const LengthUnit* getMile();
    static const LengthUnit* getYard();
    static const LengthUnit* getFeet();
    static void output(int amount, std::ostream& stream, const Unit* unit);
    static std::list<const Unit*> getLengthUnitList();

private:
    LengthUnit(int factor, const char* name);
};

#endif

